﻿//统一文件为utf-8编码编译
#pragma execution_character_set("utf-8")
///////////////////////////////////////////////////////////////////////////
// 文件名:     qfiletools.cpp
// 描述:
// 作者:      颜磊
// 创建时间:   2024-06-08 23:47
///////////////////////////////////////////////////////////////////////////
#include "qfiletools.h"
#include <QDebug>

QFileTools::QFileTools()
{

}

QStringList QFileTools::getStorages()
{
    QStringList dirList;
    QList<QStorageInfo> storages = QStorageInfo::mountedVolumes();
    for(QStorageInfo &si : storages){
//        qDebug() << "=========================================";
//        qDebug() << QString("name") << si.name();
//        qDebug() << QString("blockSize") << si.blockSize();
//        qDebug() << QString("bytesAvailable") << si.bytesAvailable();
//        qDebug() << QString("bytesFree") << si.bytesFree();
//        qDebug() << QString("bytesTotal") << si.bytesTotal();
//        qDebug() << QString("displayName") << si.displayName();
//        qDebug() << QString("fileSystemType") << si.fileSystemType();
//        qDebug() << QString("isReadOnly") << si.isReadOnly();
//        qDebug() << QString("isRoot") << si.isRoot();
//        qDebug() << QString("rootPath") << si.rootPath();
        dirList.append(si.rootPath());
    }
    return dirList;
}

QStringList QFileTools::getChildDirs(QString dirPath)
{
    QStringList dirList;
    QDir dir(dirPath);
    QFileInfoList  childDirs = dir.entryInfoList(QDir::Dirs);
    for(QFileInfo &info : childDirs){
        dirList.append(info.fileName());
    }
    return dirList;
}

QFileInfoList QFileTools::getChildFiles(QString dirPath, QString filters)
{
    QDir dir(dirPath);
    QStringList list;
    list = filters.split(";;");
    dir.setNameFilters(list);
    QFileInfoList  childDirs = dir.entryInfoList(QDir::Files);
    return childDirs;
}
